package upeu.edu.pe.dao;

import java.util.List;

//import com.cticsperu.model.SivMenu;
//import com.cticsperu.model.SivAcceso;
import upeu.edu.pe.modelo.SauMenu;
import upeu.edu.pe.modelo.SauAcceso;
import java.util.Iterator;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


@Repository("menuDao")
public class SauMenuDaoImpl implements SauMenuDao {
        protected final Log logger = LogFactory.getLog(SauMenuDaoImpl.class);  	
	@Autowired
        private SessionFactory sessionFactory;        

	public void saveMenu(SauMenu menu) {		
	    try { sessionFactory.getCurrentSession().saveOrUpdate(menu); } 
            catch (Exception e) { logger.info("Mensage de Error en saveMenu() "+e.getMessage());   }
            finally{ sessionFactory.close(); }                 
	}
	@SuppressWarnings("unchecked")        
        public List<SauMenu> listMenu() {		
		return (List<SauMenu>) sessionFactory.getCurrentSession().createCriteria(SauMenu.class).list();
	}
        
        public List<SauMenu> listaNombreMenu() {		
            List<SauMenu> resultado=null;                
            try {          
            resultado= (List<SauMenu>) sessionFactory.getCurrentSession().createSQLQuery("select DISTINCT m.id_menu, m.nombre, m.alias from sau_acceso a, sau_menu m where a.id_menu= m.id_menu order by m.alias asc ")
                    .addEntity(SauMenu.class)
                    .list();                                   
            }catch (Exception e) { logger.info("Mensage de Error en listaNombreMenu() "+e.getMessage());   }
            finally{ sessionFactory.close(); }  
        
        return resultado;
	}
   
}